package pdamh.model.util;

import junit.framework.TestCase;

public class DimensaoTest extends TestCase {

	Dimensao dim1, dim2, dim3;

	protected void setUp() throws Exception {
		dim1 = new Dimensao();
		dim2 = new Dimensao(50);
		dim3 = new Dimensao(100);

		super.setUp();
	}

	public void testHashCode() {
		Double d1 = new Double(50);
		Double d2 = new Double(100);

		assertEquals("1", d1.hashCode(), dim2.hashCode());
		assertEquals("2", d2.hashCode(), dim3.hashCode());

	}

	public void testGetPolegadas() {
		Double d1 = new Double(50);
		Double d2 = new Double(100);
		assertEquals("1", Unidade.convertMilimetrosToPolegadas(d1), dim2
				.getPolegadas());
		assertEquals("2", Unidade.convertMilimetrosToPolegadas(d2), dim3
				.getPolegadas());

	}

	public void testGetMilimetros() {
		Double d1 = new Double(50);
		Double d2 = new Double(100);
		assertEquals("1", d1, dim2.getMilimetros());
		assertEquals("2", d2, dim3.getMilimetros());
	}

	public void testUnidadeMatches() {
		assertTrue(dim2.unidadeMatches(Unidade.MILIMETROS));
		Dimensao.convertMilimetrosToPolegadas(dim2);
		assertTrue(dim2.unidadeMatches(Unidade.POLEGADAS));
		assertTrue(dim3.unidadeMatches(Unidade.MILIMETROS));
		Dimensao.convertMilimetrosToPolegadas(dim3);
		assertTrue(dim3.unidadeMatches(Unidade.POLEGADAS));
	}

	public void testGetUnidade() {
		dim2.setUnidade(Unidade.MILIMETROS);
		assertEquals("1", Unidade.MILIMETROS, dim2.getUnidade());
	}

	public void testGetValor() {
		Double d1 = new Double(50);
		Double d2 = new Double(100);
		Double d3 = new Double(0);
		
		assertEquals("1",d1, dim2.getValor());
		assertEquals("2",d2, dim3.getValor());
		assertEquals("3",d3, dim1.getValor());
		
		
	}

	public void testSetValor() {
		Double d1 = new Double(10);
		Double d2 = new Double(15);
		Double d3 = new Double(20);
		dim1.setValor(10);
		dim2.setValor(15);
		dim3.setValor(20);
		assertEquals("1",d1, dim1.getValor());
		assertEquals("2",d2, dim2.getValor());
		assertEquals("3",d3, dim3.getValor());
		
		
	}

	public void testSetUnidade() {
		dim1.setUnidade(Unidade.POLEGADAS);
		assertEquals("1",Unidade.POLEGADAS,dim1.getUnidade());
		dim3.setUnidade(Unidade.MILIMETROS);
		assertEquals("2",Unidade.MILIMETROS,dim3.getUnidade());
		assertEquals("3",Unidade.MILIMETROS,dim2.getUnidade());
		
	}

	public void testEqualsObject() {
		Dimensao temp = new Dimensao(50);
		Dimensao temp2 = new Dimensao(50);
		assertTrue(temp.equals(dim2));
		assertFalse(dim2.equals(dim1));
		dim2.setValor(54);
		assertFalse(temp.equals(dim2));
		temp.setUnidade(Unidade.POLEGADAS);
		assertFalse(temp.equals(temp2));
	}

}
